From: Keir Fraser Date: Sun, 25 Nov 2007 09:23:02 +0000 (+0000) Subject: vt-d: Fix iommu_map_page(). X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~14704 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=727f3fd5fa194bb03e9e478b2fd1760f38a43546;p=xen.git vt-d: Fix iommu_map_page(). Signed-off-by: Weidong Han --- diff --git a/xen/arch/x86/hvm/vmx/vtd/intel-iommu.c b/xen/arch/x86/hvm/vmx/vtd/intel-iommu.c index 4dc4563002..080092be85 100644 --- a/xen/arch/x86/hvm/vmx/vtd/intel-iommu.c +++ b/xen/arch/x86/hvm/vmx/vtd/intel-iommu.c @@ -1464,7 +1464,7 @@ int iommu_map_page(struct domain *d, paddr_t gfn, paddr_t mfn) if ( !pg ) return -ENOMEM; pte = (struct dma_pte *)map_domain_page(page_to_mfn(pg)); - pte += mfn & LEVEL_MASK; + pte += gfn & LEVEL_MASK; dma_set_pte_addr(*pte, mfn << PAGE_SHIFT_4K); dma_set_pte_prot(*pte, DMA_PTE_READ | DMA_PTE_WRITE); iommu_flush_cache_entry(iommu, pte);